package com.example.SpringModelManage.util;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 模型工具类
 *
 * @author hulilei
 * @version 1.0.0
 * @date 2021/10/25 15:59
 */
@Component
public class ModelUtil {

    /**
     * 用雪花算法，生成模型ID
     */
    public String createModelId() {
        return "";
    }

    /**
     * 用雪花算法，生成模型和数据集的联合ID，
     * 这里暂时先用时间戳
     */
    public String createMdId() {
        // Long 转 String
        return Long.toString(System.currentTimeMillis());
    }

    /**
     * 计算需要添加的数据集（更新模型数据集的时候）
     */
    public List<String> getAddModelDataset(List<String> datasetIdOld, List<String> datasetIdNew) {
        List<String> datasetIdAdd = new ArrayList();
        /**
         * List深拷贝
         */
        for(String item: datasetIdNew) {
            datasetIdAdd.add(item);
        }
        /**
         * 求datasetIdNew中有，而datasetIdOld没有的元素
         */
        datasetIdAdd.removeAll(datasetIdOld);
        return datasetIdAdd;
    }
    /**
     * 计算需要删除的数据集（更新模型数据集的时候）
     */
    public List<String> getDeleteModelDataset(List<String> datasetIdOld, List<String> datasetIdNew) {
        List<String> datasetIdDelete = new ArrayList();
        /**
         * List深拷贝
         */
        for(String item: datasetIdOld) {
            datasetIdDelete.add(item);
        }
        /**
         * 求datasetIdOld中有，而datasetIdNew没有的元素
         */
        datasetIdOld.removeAll(datasetIdNew);
        return datasetIdDelete;
    }
}
